#ifndef ELEMENT_H
#define ELEMENT_H
#include "node.h"
#include <QVector>
#include <armadillo>

class element
{
    int numeration;
    float lambda;
    float mi;

    QVector<node*> nos;

    arma::mat localMatrix;
    arma::mat jacobiano;
    arma::mat dPhi;
    arma::mat phi;
    arma::mat gaussPoint;
    arma::vec localForce;

public:
    element();
    void setNumeration(int);
    int getNumeration();

    void setNodes(node*, node*, node*, node*);
    node*  getNode(int);

    void setLocalMatrix();
    arma::mat getLocalMatrix();

    void setLocalForce();
    arma::vec getLocalForce();

    void setJacobiano(float,float);
    arma::mat getJacobiano();

    float getTensorCComponent(int,int,int,int);
    float getTensorQabijComponent(int,int,int,int);
    float getTensorQabComponent(int,int);

    void setDphi(float, float);
    void setPhi(float, float);

    mat getDphi();
    mat getPhi();

    void setGaussPoint();

    float f(int, int);




private:

protected:
};
QDebug operator<<(QDebug ,element );
#endif // ELEMENT_H
